package frames;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSeparator;

import javax.swing.WindowConstants;


import javax.swing.SwingUtilities;

import controlador.Sistema;
import persistencia.perSede;




public class MenuFrame extends javax.swing.JFrame {
	private static Sistema sistema;
	

	private JMenuBar menuBar;
	private JMenu mnAdmS;
	private JMenuItem mnAltaSede;
	private JMenuItem mnBajaSede;
	private JMenuItem mnModSede;	
	private JMenu mnAdmV;
	private JMenuItem mnAltaVeh;
	private JMenuItem mnBajaVeh;
	private JMenuItem mnModVeh;
	private JMenu mnAdmT;
	private JMenuItem mnAltaTec;
	private JMenuItem mnBajaTec;
	private JMenuItem mnModTec;
	private JMenu mnMov;
	private JMenuItem mnRegisMov;	
	private JMenu mnMant;
	private JMenuItem mnGenMant;
	private JMenuItem mnAutMant;
	private JMenu mnReports;
	private JMenuItem mnGenRep;
	private JMenu mnAbout;
	private JMenuItem mnVersion;	
	private JMenuItem mnSalir;	
	private JSeparator sep;	
	private JLabel lblLogo;
	


	
	public MenuFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		
		sistema = Sistema.getInstance();
		sistema.levantarCosasMemoria();
		try {
			setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
			getContentPane().setBackground(new java.awt.Color(255,255,255));
			this.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("mgasbar.png")).getImage());
			getContentPane().setLayout(null);
			this.setTitle("MetroGas");
			{/*
				BufferedImage myPicture = ImageIO.read(new File("mgas.png"));
				lblLogo = new JLabel(new ImageIcon(myPicture));
				getContentPane().add(lblLogo);
				lblLogo.setBackground(new java.awt.Color(0,64,0));
				lblLogo.setBounds(275, 120, 150, 65);*/
			}
			{
				menuBar = new JMenuBar();
				setJMenuBar(menuBar);
				{
					mnAdmV = new JMenu();
					menuBar.add(mnAdmV);
					mnAdmV.setText("Administrar Vehiculo");
					{
						mnAltaVeh = new JMenuItem();
						mnAdmV.add(mnAltaVeh);
						mnAltaVeh.setText("Alta");
						mnAltaVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AltaVehiculoFrame a = new AltaVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
								
								
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmV.add(sep);
					}
					{
						mnBajaVeh = new JMenuItem();
						mnAdmV.add(mnBajaVeh);
						mnBajaVeh.setText("Baja");
						mnBajaVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									BajaVehiculoFrame a = new BajaVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmV.add(sep);
					}
					{
						mnModVeh = new JMenuItem();
						mnAdmV.add(mnModVeh);
						mnModVeh.setText("Modificar");
						mnModVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									ModVehiculoFrame a = new ModVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}					
				}
				{
					mnAdmT = new JMenu();
					menuBar.add(mnAdmT);
					mnAdmT.setText("Administrar Tecnico");
					{
						mnAltaTec = new JMenuItem();
						mnAdmT.add(mnAltaTec);
						mnAltaTec.setText("Alta");
						mnAltaTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AltaTecnicoFrame a = new AltaTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmT.add(sep);
					}
					{
						mnBajaTec = new JMenuItem();
						mnAdmT.add(mnBajaTec);
						mnBajaTec.setText("Baja");
						mnBajaTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								

								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									BajaTecnicoFrame a = new BajaTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmT.add(sep);
					}
					{
						mnModTec = new JMenuItem();
						mnAdmT.add(mnModTec);
						mnModTec.setText("Modificar");
						mnModTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									ModTecnicoFrame a = new ModTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
				{
					mnMov = new JMenu();
					menuBar.add(mnMov);
					mnMov.setText("Movimientos");
					{
						mnRegisMov = new JMenuItem();
						mnMov.add(mnRegisMov);
						mnRegisMov.setText("Registrar");
						mnRegisMov.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									RegisMovFrame a = new RegisMovFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
								
							}
						});
					}
				}
				{
					mnMant = new JMenu();
					menuBar.add(mnMant);
					mnMant.setText("Mantenimiento");
					{
						mnGenMant = new JMenuItem();
						mnMant.add(mnGenMant);
						mnGenMant.setText("Generar");
						mnGenMant.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									GenMantFrame a = new GenMantFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnMant.add(sep);
					}
					{
						mnAutMant = new JMenuItem();
						mnMant.add(mnAutMant);
						mnAutMant.setText("Autorizar");
						mnAutMant.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AutMantFrame a = new AutMantFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
				{
					mnReports = new JMenu();
					menuBar.add(mnReports);
					mnReports.setText("Reportes");
					{
						mnGenRep = new JMenuItem();
						mnReports.add(mnGenRep);
						mnGenRep.setText("Generar");
						mnGenRep.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									GenRepFrame a = new GenRepFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
				{
					mnAbout = new JMenu();
					menuBar.add(mnAbout);
					mnAbout.setText("Acerca");
					{
						mnVersion = new JMenuItem();
						mnAbout.add(mnVersion);
						mnVersion.setText("Version");
						mnVersion.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								Container d=getContentPane();
								JOptionPane.showMessageDialog(d,"MetroGas Logistics \nDesarrollado por:\nMartin Huber\nAlejandro Grossi","About",JOptionPane.INFORMATION_MESSAGE);
								
							}
						});
					}
					{
						sep = new JSeparator();
						mnAbout.add(sep);
					}
					{
						mnSalir = new JMenuItem();
						mnAbout.add(mnSalir);
						mnSalir.setText("Salir");
						mnSalir.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								System.exit(0);
								
								//FALTARIA GUARDAR LOGIN
							}
						});
					}
				}
			}
			
			pack();
			this.setSize(700, 400);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
		setVisible(true);
	}

}
